ジェネリクス を DTO に変換する
from ドメイン型を DTO に変換する方法
前提: DTO に変換する必要がある ジェネリクス はほとんど存在しない
シリアライズライブラリが ジェネリック をサポートしている
以下のように DTO を作成可能
e.g. Result
code:fsharp
type ResultDto<'OkData, 'ErrorData when 'OkData: null and 'ErrorData: null> =
{ IsError: bool
OkData: 'OkData
ErrorData: 'ErrorData }
when 'OkData: null and 'ErrorData: null でそれぞれの型をnull 許容
サポートしていない場合
具体的なケースごとに、別途 具象型 を作成する必要がある
e.g. 受注確定ワークフローの戻り値の型: Result<PlaceOrderEvent list, PlaceOrderError>
実際のパイプラインでの bind と map の利用
code:fsharp
type PlaceOrderResultDto =
{ IsError: bool
OkData: PlaceOrderEventDto[]
ErrorData: PlaceOrderErrorDto }